package com.pureut.storage.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pureut.storage.domain.MiscellaneousReceipt;
import com.pureut.storage.dto.MiscellaneousReceiptDto;
import com.pureut.storage.dto.PickingRestDbDto;
import com.pureut.storage.dto.PickingRestHandoverDto;
import com.pureut.storage.export.MiscellaneousPurchaseReceiptExport;
import com.pureut.storage.vo.MiscellaneousReceiptVo;
import com.pureut.storage.vo.PickingRestDbVo;
import com.pureut.storage.vo.UpdateStatusByQualityVo;
import com.sale.common.mybatis.core.page.PageQuery;
import com.sale.common.mybatis.core.page.TableDataInfo;

import java.util.List;

/***
 * 其它入库 service
 * Author:C
 * Date:2022/12/28 15:44
 * @DESC
 */
public interface MiscellaneousReceiptService extends IService<MiscellaneousReceipt> {

    /**
     * 其它入库列表
     */
    TableDataInfo<MiscellaneousReceiptDto> getMiscellaneousList(MiscellaneousReceiptVo miscellaneousReceiptVo, PageQuery pageQuery) throws Exception;

    /**
     * 其他入库新增
     */
    boolean addMiscellaneousReceipt(MiscellaneousReceiptVo miscellaneousReceiptVo) throws Exception;

    /**
     * 关结
     */
    boolean close(MiscellaneousReceiptVo miscellaneousReceiptVo);

    /**
     * 删除
     */
    boolean deleteMiscellaneousReceipt(String idStr);

    /**
     * 修改
     */
    boolean updateMiscellaneousReceipt(MiscellaneousReceiptVo miscellaneousReceiptVo);

    /**
     * 查看
     */
    MiscellaneousReceiptDto getView(Long id);

    /**
     * 导出
     */
    List<MiscellaneousPurchaseReceiptExport> getInfoExport(MiscellaneousReceiptVo miscellaneousReceiptVo);

    /**
     * 其它入库（pda）
     */
    PickingRestDbDto miscellaneousPda(PickingRestDbVo pickingRestDbVo) throws Exception;

    /**
     * 其他入库拣货撤销
     */
    boolean pickingCancellation(PickingRestDbVo pickingRestDbVo);

    /**
     * 其他入库拣货完成
     */
    boolean pickingCompleted(PickingRestDbVo pickingRestDbVo) throws Exception;

    /**
     * 其他入库交接
     */
    PickingRestHandoverDto handover(PickingRestDbVo pickingRestDbVo);

    /**
     * 其他入库品质回传状态(fegin调用)
     */
    boolean updateStatusByQuality(UpdateStatusByQualityVo updateStatusByQualityVo);
}
